f63b0d7
@@ -96,7 +96,8 @@
public abstract class AbstractMessageWriterResultHandler extends HandlerResultHa
 		ResolvableType elementType;
 		if (adapter != null) {
 			publisher = adapter.toPublisher(body);
-			elementType = adapter.isNoValue() ? ResolvableType.forClass(Void.class) : bodyType.getGeneric(0);
+			ResolvableType genericType = bodyType.getGeneric(0);
+			elementType = getElementType(adapter, genericType);
 		}
 		else {
 			publisher = Mono.justOrEmpty(body);
@@ -127,6 +128,18 @@
public abstract class AbstractMessageWriterResultHandler extends HandlerResultHa
 		return Mono.error(new NotAcceptableStatusException(getProducibleMediaTypes(elementType)));
 	}
 
+	private ResolvableType getElementType(ReactiveAdapter adapter, ResolvableType genericType) {
+		if (adapter.isNoValue()) {
+			return ResolvableType.forClass(Void.class);
+		}
+		else if (genericType != ResolvableType.NONE) {
+			return genericType;
+		}
+		else {
+			return ResolvableType.forClass(Object.class);
+		}
+	}
+
 	private List<MediaType> getProducibleMediaTypes(ResolvableType elementType) {
 		return getMessageWriters().stream()
 				.filter(converter -> converter.canWrite(elementType, null))
